home *** CD-ROM | disk | FTP | other *** search
/ The Original Shareware 1.1 / The Original Shareware (WeMake CDs)(Volume 1.1)(CDs, Inc)(1993).iso / 32 / cadence.zip / VOL1NO3.ZIP / GRAPH.LSP < prev    next >
Text File  |  1986-07-21  |  2KB  |  55 lines

  1. ;
  2. ;      AutoLISP utility function  : written by Paul Petersen
  3. ;                                   A B Consulting Co., Inc.
  4. ;                                   3939 N 48th
  5. ;                                   Lincoln NE, 68504
  6. ;
  7. ;                     copyright July 1986
  8. ;
  9. ;    This ACAD command creates the basis for a mathematical function graph.
  10. ;  It uses a AutoLISP function evaluated at a number of points in the
  11. ;  defined interval as the data points to plot the function.  After the
  12. ;  graph is drawn it is scaled to the screen and smoothed.
  13. ;
  14. ;  Example
  15. ;
  16. ;  GRAPH Function (QUIT to exit): SIN
  17. ;  Minimum value: 0.0
  18. ;  Maximum value: 10.0
  19. ;  Intervals: 20
  20. ;
  21. ;  (DEFUN DOUBLE (X)
  22. ;         (* X X))
  23. ;
  24. ;  GRAPH Function (QUIT to exit): DOUBLE
  25. ;  Minimum value: 0.0
  26. ;  Maximum value: 10.0
  27. ;  Intervals: 20
  28. ;
  29.  
  30. (DEFUN C:GRAPH (/ FNC XCOR XMAX STEPS DELTA YCOR CMDSAVE)
  31.         (WHILE (NOT (OR (EQUAL FNC (QUOTE QUIT))
  32.                                 (EQUAL (QUOTE SUBR) (TYPE (EVAL FNC)))
  33.                                 (AND (BOUNDP FNC)
  34.                                         (EQUAL 1 (LENGTH (CAR (EVAL FNC)))))))
  35.                 (SETQ FNC (READ (GETSTRING "Function (QUIT to exit): "))))
  36.         (COND ((NOT (EQUAL FNC (QUOTE QUIT)))
  37.                 (SETQ XCOR (GETREAL "Minimum value: "))
  38.                 (SETQ XMAX (GETREAL "Maximum value: "))
  39.                 (SETQ STEPS (GETINT "Intervals: "))
  40.                 (SETQ CMDSAVE (GETVAR "CMDECHO"))
  41.                 (SETVAR "CMDECHO" 0)
  42.                 (SETQ DELTA (/ (- XMAX XCOR) (FLOAT STEPS)))
  43.                 (SETQ YCOR (APPLY FNC (LIST XCOR)))
  44.                 (COMMAND "PLINE" (LIST XCOR YCOR))
  45.                 (REPEAT STEPS
  46.                         (SETQ XCOR (+ XCOR DELTA))
  47.                         (SETQ YCOR (APPLY FNC (LIST XCOR)))
  48.                         (COMMAND (LIST XCOR YCOR)))
  49.                 (COMMAND "" "ZOOM" "E")
  50.                 (COMMAND "PEDIT" (LIST XCOR YCOR) "F" "X")
  51.                 (SETVAR "CMDECHO" CMDSAVE)))
  52.                 nil)
  53.  
  54.  
  55.